'''
Author: SUNNY
Description: 
Date: 2025-11-15 10:23:27
'''
"""
简单数学计算 MCP 服务器
提供基础的数学运算功能
"""

from fastmcp import FastMCP

# 创建服务器实例，取个有趣的名字
mcp = FastMCP("数学小助手计算器 🧮")

@mcp.tool()
def add(a: int, b: int) -> int:
    """两个整数相加

    当你需要计算两个整数的和时，就调用这个工具。
    比如用户问"5加7等于多少"，AI就知道该调用这个函数。

    Args:
        a: 第一个加数
        b: 第二个加数

    Returns:
        两个数字的和
    """
    return a + b

@mcp.tool()
def multiply(a: int, b: int) -> int:
    """两个数字相乘

    可以处理整数和小数的乘法运算。

    Args:
        a: 第一个乘数
        b: 第二个乘数

    Returns:
        两个数字的乘积
    """
    return a * b

@mcp.tool()
def calculate_bmi(weight: float, height: float) -> dict:
    """计算身体质量指数(BMI)

    根据体重和身高计算BMI值，并提供健康建议。

    Args:
        weight: 体重（公斤）
        height: 身高（米）

    Returns:
        包含BMI值和健康建议的字典
    """
    bmi = weight / (height ** 2)

    if bmi < 18.5:
        category = "偏瘦"
        advice = "建议增加营养摄入，适当增重"
    elif bmi < 24:
        category = "正常"
        advice = "保持当前体重，维持健康生活方式"
    elif bmi < 28:
        category = "超重"
        advice = "建议控制饮食，增加运动"
    else:
        category = "肥胖"
        advice = "建议寻求专业指导，制定减重计划"
    return {"bmi": round(bmi, 2), "category": category, "advice": advice}

if __name__ == "__main__":
    # 启动服务器，使用标准输入输出方式
    mcp.run(transport="stdio")

